#include <iostream>
#include <cstdio>
#include <cmath>
const long long mod (1e9+7);
typedef long long ll;
using namespace std;
int main() {
    int n,m;
    scanf("%d%d", &n, &m);
    ll a[n][n];
    ll res[n][n];
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++) {
            scanf("%lld", &a[i][j]);
            if(i==j)res[i][j]=1;
            else res[i][j]=0;
        }
    ll result;
    ll tmp[n][n];
    while(m) {
        if (m&1) {
            for (int i=0; i<n; i++) {
                for (int j=0; j<n; j++) {
                    result=0;
                    for (int k=0; k<n; k++) {
                        result=(result+res[i][k]*a[k][j])%mod;
                    }
                    tmp[i][j]=result%mod;
                }
            }
            for (int i=0; i<n; i++)
                for (int j=0; j<n; j++)
                    res[i][j]=tmp[i][j];
        }
        for (int i=0; i<n; i++) {
            for (int j=0; j<n; j++) {
                result=0;
                for (int k=0; k<n; k++) {
                    result=(result+a[i][k]*a[k][j])%mod;
                }
                tmp[i][j]=result%mod;
            }
        }
        for (int i=0; i<n; i++)
            for (int j=0; j<n; j++)
                a[i][j]=tmp[i][j];
        m=m>>1;
    }
    for (int i=0; i<n; i++) {
        for (int j=0; j<n; j++) {
            printf ("%lld ", res[i][j]);
        }
        printf("\n");
    }
    return 0;
}
